Communications systems are commonly utilized to transfer data from one entity to another (uni-directional) or exchange data between entities (bi-directional), including half and/or full duplex data exchange, wherein data can be concurrently transmitted and received by one or more communicating entities. In many instances, such data can include graphics (e.g., still pictures and video), text and/or audio (e.g., voice and sound). In instances where the data includes audio, a receiver (e.g., a microphone) associated with one of the entities can receive a desired signal(s), noise and undesirable echo, for example, associated with reverberations from a concurrently transmitted audio signal from the entity.
By way of example, echo typically is present when utilizing a hands-free (e.g., an intercom) telephone when a user talks into the microphone and the microphone concurrently picks up background sounds, including voice from the telephone's loudspeaker. In these instances, the microphone receives the desired signal (e.g., a user utterance), noise (e.g., background sounds) and voice from the speaker. In addition, the voice can reflect off structures such as walls, for example, to produce echo that can be concurrently captured by the receiver. Examples of other applications susceptible to echo include multimedia communications equipment, Internet gaming and speech recognition.
Conventionally, techniques such as boundary detection or adaptive subband acoustic echo cancellation (AEC) have been utilized to work around or remove echo in a received signal. In general, AEC is typically employed by real time communications (RTC) applications so that a user can audibly communicate without using a headset. However, current AEC algorithms often restrict the playback sampling rate (the sampling rate of the data sent to the speakers via a sound card) to that of received signal sampling rate (the sampling rate of the data captured by the microphone through the same or a different interface).
This solution can be useful, but it can limit quality of audio played by other applications. For example, if a user desires to play CD quality music at 44.1 kHz while making a real-time call, the music will be down-sampled to a sampling rate of the real-time call, which reduces the quality of music heard by the user. Conventional solutions typically include computationally expensive sampling rate converters with high-order filters (with numerous taps), and they generally are associated with additional time delays and are susceptible to aliasing artifacts.